package com.example.service;

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener;
import org.apache.zookeeper.CreateMode;

import java.util.List;

public interface SysCuratorService {

    /**
     * 获取操作类
     * @return
     */
    CuratorFramework getCuratorFramework();

    /**
     * 判断节点是否存在
     * @param path
     * @return
     */
    boolean isExistNode(final String path);

    /**
     * 创建节点
     */
    void createNode(CreateMode mode, String path);

    /**
     * 设置节点数据
     */
    void setNodeData(String path, String nodeData);

    /**
     * 创建节点
     */
    String createNodeAndData(CreateMode mode, String path, String nodeData);

    /**
     * 获取节点数据
     */
    String getNodeData(String path);

    /**
     * 获取节点下数据
     */
    List<String> getNodeChild(String path);

    /**
     * 是否递归删除节点
     */
    void deleteNode(String path, Boolean recursive);

    /****
     *
     * 监听节点的变化
     *
     * @param path
     */
    void watchNode(String path, PathChildrenCacheListener pathChildrenCacheListener);
}

